package br.unioeste.sim;

import java.net.*;

public class Ouvir implements Runnable {
	int PORTA;
	int linhaRouter;
	int router;
	private DatagramSocket serverSocket;

	public Ouvir(int id, int linha) {
		PORTA = 5000 + id;
		linhaRouter = linha;
		router = id;
	}

	public void ouve() throws Exception {
		int aux = -1;
		for (int i = 0; i < Simulator.roteadores.size(); i++) {
			if (Simulator.roteadores.get(i).getID() == router) {
				aux = i;
			}
		}

		byte receiveData[] = new byte[Simulator.roteadores.size() + 1];
		int entrada[] = new int[Simulator.roteadores.size() + 1];

		serverSocket = new DatagramSocket(PORTA);
		DatagramPacket pacoteRecebido;

		while (true) {

			pacoteRecebido = new DatagramPacket(receiveData, receiveData.length);

			serverSocket.receive(pacoteRecebido);
			byte[] dadosPacoteRecebido = pacoteRecebido.getData();
			for (int i = 0; i < dadosPacoteRecebido.length; i++) {
				entrada[i] = dadosPacoteRecebido[i];
			}

			Simulator.roteadores.get(aux).setLinha(entrada);

		}

	}

	@Override
	public void run() {
	System.out.println("teste");
		try {
			ouve();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
